CMAKE_PREFIX_PATH: '/usr/lib64/cmake/Qt5'
- IMAGE: '38'
CMAKE_PREFIX_PATH: '/usr/lib64/cmake/Qt6'
+ - IMAGE: '39'
+ CMAKE_PREFIX_PATH: '/usr/lib64/cmake/Qt5'
+ - IMAGE: '39'
+ CMAKE_PREFIX_PATH: '/usr/lib64/cmake/Qt6'
container:
image: gpsbabel-docker.jfrog.io/tsteven4/gpsbabel_build_environment_f${{ matrix.IMAGE }}
env:
#include <cmath> // macos wants abs from here!
#include <cstdlib> // for strtod, abs
+#include <utility> // for as_const
#include <QString> // for QString
-#include <QtGlobal> // for qAsConst, QAddConst<>::Type, foreach
+#include <QtGlobal> // for QForeachContainer, qMakeForeachContainer, foreach
#include "defs.h"
#include "bend.h"
+#include "formspec.h" // for FormatSpecificDataList
#include "grtcirc.h" // for RAD, heading_true_degrees, gcdist, linepart, radtometers, DEG
void BendFilter::process()
{
- for (const auto* route_orig : qAsConst(*routes_orig)) {
+ for (const auto* route_orig : std::as_const(*routes_orig)) {
process_route_orig(route_orig);
}
}
#include "duplicate.h"
+#include <utility> // for as_const
+
#include <QList> // for QList, QList<>::iterator, QList<>::const_iterator
#include <QMultiHash> // for QMultiHash
-#include <QtCore> // for qAsConst
#include "defs.h"
void DuplicateFilter::process()
{
QMultiHash<QString, Waypoint*> wpthash;
- for (Waypoint* waypointp : qAsConst(*global_waypoint_list)) {
+ for (Waypoint* waypointp : std::as_const(*global_waypoint_list)) {
QString key;
if (lcopt) {
#include <QVariant> // for QVariant
#include <QVector> // for QVector
#include <Qt> // for UTC, ISODate
-#include <QtGlobal> // for qAsConst, qPrintable, qint64
+#include <QtGlobal> // for qPrintable, qint64
#include <algorithm> // for sort, min
#include <cassert> // for assert
#include <cstdio> // for printf, SEEK_SET, snprintf, SEEK_CUR
#include <cstdlib> // for abs
#include <cstring> // for memcmp, strlen
-#include <type_traits> // for add_const<>::type
+#include <utility> // for as_const
#include "defs.h" // for Waypoint, fatal, warning, global_options, global_opts, unknown_alt, xfree, route_disp_all, track_disp_all, waypt_disp_all, wp_flags, KNOTS_TO_MPS, KPH_TO_MPS, MPH_TO_MPS, MPS_TO_KPH, WAYPT_HAS, case_ignore_strcmp, waypt_add, xstrdup, xstrndup, fix_2d
#include "garmin_tables.h" // for gt_lookup_datum_index
void
ExifFormat::exif_release_apps()
{
- for (auto* app : qAsConst(*exif_apps)) {
+ for (auto* app : std::as_const(*exif_apps)) {
if (app->fcache) {
gbfclose(app->fcache);
}
{
gbfputuint16(0xFFD8, fout_);
- for (auto* app : qAsConst(*exif_apps)) {
+ for (auto* app : std::as_const(*exif_apps)) {
gbfputuint16(app->marker, fout_);
#include <cstdlib> // for strtol
#include <cstring> // for memcpy, strlen, strncpy, strchr
#include <ctime> // for time_t
+#include <utility> // for as_const
#include <QByteArray> // for QByteArray
#include <QRegularExpression> // for QRegularExpression
i = 0;
// Iterate with waypt_disp_all?
- for (const Waypoint* wpt : qAsConst(*global_waypoint_list)) {
+ for (const Waypoint* wpt : std::as_const(*global_waypoint_list)) {
char obuf[256];
QString src;
#include <cstring> // for strstr, strlen
#include <ctime> // for time_t, gmtime, localtime, strftime
#include <optional> // for optional
-#include <utility> // for pair, make_pair
+#include <utility> // for as_const, pair, make_pair
#include <QByteArray> // for QByteArray
#include <QChar> // for QChar, QChar::Other_Control
const QStringList altheader = headers.at(ht).toUpper().split('\t');
int i = -1;
- for (const auto& name : qAsConst(header_column_names)) {
+ for (const auto& name : std::as_const(header_column_names)) {
i++;
int field_idx = altheader.indexOf(name);
#include <cassert> // for assert
#include <cmath> // for lround
#include <cstdio> // for sscanf
+#include <cstdint> // for uint16_t
#include <cstring> // for strchr, strncpy
+#include <optional> // for optional
+#include <utility> // for as_const
#include <QByteArray> // for QByteArray
#include <QDate> // for QDate
#include <QXmlStreamNamespaceDeclarations> // for QXmlStreamNamespaceDeclarations
#include <QXmlStreamReader> // for QXmlStreamReader, QXmlStreamReader::Characters, QXmlStreamReader::EndDocument, QXmlStreamReader::EndElement, QXmlStreamReader::Invalid, QXmlStreamReader::StartElement
#include <Qt> // for CaseInsensitive, UTC
-#include <QtGlobal> // for qAsConst, QAddConst<>::Type
#include "defs.h"
#include "garmin_fs.h" // for garmin_fs_t, garmin_ilink_t
} else {
if (gpx_global) {
// TODO: gpx 1.1 copyright goes here
- for (const auto& l : qAsConst(gpx_global->link)) {
+ for (const auto& l : std::as_const(gpx_global->link)) {
writer->writeStartElement(QStringLiteral("link"));
writer->writeAttribute(QStringLiteral("href"), l.url_);
writer->writeOptionalTextElement(QStringLiteral("text"), l.url_link_text_);
#include "interpolate.h"
#include <climits> // for INT_MAX
-#include <cmath> // for abs, ceil, isfinite, round
+#include <cmath> // for ceil, isfinite
#include <cstdlib> // for abs, strtod
#include <optional> // for optional
#include <QString> // for QString
-#include <QtGlobal> // for qint64, qAsConst, qRound64
+#include <QtGlobal> // for qint64, qRound64
#include "defs.h"
#include "grtcirc.h" // for linepart, RAD, gcdist, radtomiles
#include <cstdint> // for int64_t
#include <cstdlib> // for abs
#include <cstring> // for strcmp, strlen
+#include <utility> // for as_const
#include <QByteArray> // for QByteArray
#include <QDate> // for QDate
#include <QTextEncoder> // for QTextEncoder
#include <QTime> // for QTime
#include <Qt> // for CaseInsensitive, UTC
-#include <QtGlobal> // for qPrintable, uint, qAsConst, QAddConst<>::Type
+#include <QtGlobal> // for qPrintable, uint, QAddConst<>::Type
#include "defs.h"
#include "formspec.h" // for FsChainFind, FsChainAdd, kFsLowranceusr4, FormatSpecificData
void
LowranceusrFormat::register_waypt(const Waypoint* wpt) const
{
- for (const Waypoint* cmp : qAsConst(*waypt_table)) {
+ for (const Waypoint* cmp : std::as_const(*waypt_table)) {
if (same_points(wpt, cmp)) {
return;
}
LowranceusrFormat::lowranceusr4_find_waypt(uint uid_unit, int uid_seq_low, int uid_seq_high)
{
// Iterate with waypt_disp_all?
- for (const Waypoint* waypointp : qAsConst(*global_waypoint_list)) {
+ for (const Waypoint* waypointp : std::as_const(*global_waypoint_list)) {
const auto* fs = reinterpret_cast<lowranceusr4_fsdata*>(waypointp->fs.FsChainFind(kFsLowranceusr4));
if (fs && fs->uid_unit == uid_unit &&
LowranceusrFormat::lowranceusr4_find_global_waypt(uint id1, uint id2, uint id3, uint id4)
{
// Iterate with waypt_disp_all?
- for (const Waypoint* waypointp : qAsConst(*global_waypoint_list)) {
+ for (const Waypoint* waypointp : std::as_const(*global_waypoint_list)) {
const auto* fs = reinterpret_cast<lowranceusr4_fsdata*>(waypointp->fs.FsChainFind(kFsLowranceusr4));
if (fs && fs->UUID1 == id1 &&
#include <cassert> // for assert
#include <cctype> // for isspace, isdigit
+#include <utility> // for as_const
#include <QByteArray> // for QByteArray
#include <QChar> // for QChar, QChar::ReplacementCharacter
#include <QString> // for QString
#include <QVector> // for QVector
#include <Qt> // for CaseInsensitive
-#include <QtGlobal> // for qAsConst
#include "defs.h"
#include "geocache.h" // for Geocache
*/
QByteArray tstring;
ostring.swap(tstring);
- for (const auto ch : qAsConst(tstring)) {
+ for (const auto ch : std::as_const(tstring)) {
if (!isspace(ch)) {
ostring.append(ch);
}
{
QByteArray tstring;
ostring.swap(tstring);
- for (const auto ch : qAsConst(tstring)) {
+ for (const auto ch : std::as_const(tstring)) {
if (badchars_.contains(ch)) {
continue;
}
#include "position.h"
#include <cmath> // for abs
-#include <cstdlib> // for strtod
+#include <cstdlib> // for strtod, abs
#include <QList> // for QList
-#include <QtGlobal> // for qAsConst, qRound64, qint64
+#include <QtGlobal> // for qRound64, qint64
#include "defs.h"
#include "src/core/datetime.h" // for DateTime
#include "radius.h"
#include <cstdlib> // for strtod
+#include <utility> // for as_const
#include <QString> // for QString
-#include <QtGlobal> // for qAsConst, QAddConst<>::Type, foreach
+#include <QtGlobal> // QAddConst<>::Type, foreach
#include "defs.h" // for Waypoint, del_marked_wpts, route_add_head, route_add_wpt, waypt_add, waypt_sort, waypt_swap, xstrtoi, route_head, WaypointList, kMilesPerKilometer
waypt_swap(comp);
int i = 0;
- for (Waypoint* wp : qAsConst(comp)) {
+ for (Waypoint* wp : std::as_const(comp)) {
delete static_cast<extra_data*>(wp->extra_data);
wp->extra_data = nullptr;
#include <cmath> // for round
#include <optional> // for optional
#include <tuple> // for tuple, tuple_element<>::type
+#include <utility> // for as_const
#include <QDebug> // for QDebug
#include <QList> // for QList<>::const_iterator
#include <QString> // for QString
#include <QTextStream> // for qSetRealNumberPrecision
-#include <QtGlobal> // for qDebug, qAsConst, qint64
+#include <QtGlobal> // for qDebug, qint64
#include "defs.h" // for Waypoint, route_head, fatal, WaypointList, track_add_wpt, track_disp_all, RouteList, track_add_head, track_del_wpt, track_swap, UrlList, gb_color, global_options, global_opts
#include "src/core/datetime.h" // for DateTime
}
counter = 0;
if (global_opts.debug_level >= 5) {
- for (const auto& [pos, avc, alt] : qAsConst(history)) {
+ for (const auto& [pos, avc, alt] : std::as_const(history)) {
qDebug() << "initial conditions" << pos << avc << alt;
}
qDebug() << "initial accumulator" << accumulated_position << accumulated_altitude_valid_count << accumulated_altitude;
#include <cassert> // for assert
#include <cstddef> // for nullptr_t
#include <optional> // for optional, operator>, operator<
+#include <utility> // for as_const
#include <QDateTime> // for operator>, QDateTime, operator<
#include <QList> // for QList<>::const_iterator
// mimic trkseg handling from WaypointList::del_rte_waypt
bool inherit_new_trkseg = false;
- for (Waypoint* wpt : qAsConst(oldlist)) {
+ for (Waypoint* wpt : std::as_const(oldlist)) {
if (wpt->wpt_flags.marked_for_deletion) {
if (wpt->wpt_flags.new_trkseg) {
inherit_new_trkseg = true;
--- /dev/null
+# this file is used to build the image gpsbabel_build_environment used by travis.
+
+FROM fedora:39
+
+LABEL maintainer="https://github.com/tsteven4"
+
+WORKDIR /app
+
+# basic tools to build
+RUN dnf install --assumeyes git make valgrind diffutils findutils langpacks-en ninja-build && \
+ dnf clean all
+# libraries used by gpsbabel. zlib and shapelib may or may not be used depending qmake options.
+RUN dnf install --assumeyes libusb1-devel zlib-devel shapelib-devel && \
+ dnf clean all
+# Qt used by gpsbabel, gpsbabelfe
+RUN dnf install --assumeyes qt5-qtbase-devel qt5-qtserialport-devel qt5-qtwebengine-devel qt5-linguist qt5-qttranslations && \
+ dnf clean all
+RUN dnf install --assumeyes qt6-qtbase-devel qt6-qtserialport-devel qt6-qtwebengine-devel qt6-linguist qt6-qttranslations qt6-qt5compat-devel qt6-qttools-devel libxkbcommon-devel && \
+ dnf clean all
+# tools to build the docs
+RUN dnf install --assumeyes expat desktop-file-utils libxslt docbook-style-xsl fop docbook5-style-xsl docbook5-schemas && \
+ dnf clean all
#include <cstring> // for strlen, strchr, strcmp
#include <ctime> // for gmtime, strftime, time_t, tm
#include <iterator> // for next
+#include <utility> // for as_const
#include <QByteArray> // for QByteArray
#include <QChar> // for QChar
#include <QRegularExpressionMatch> // for QRegularExpressionMatch
#include <QString> // for QString
#include <Qt> // for UTC, CaseInsensitive
-#include <QtGlobal> // for qAsConst, foreach, qPrintable, QAddConst<>::Type, qint64
+#include <QtGlobal> // for foreach, qPrintable, QAddConst<>::Type, qint64
#include "defs.h"
#include "trackfilter.h"
{
int res = 0;
- for (const auto& arg : qAsConst(args)) {
+ for (const auto& arg : std::as_const(args)) {
if (*arg.argval != nullptr) {
res++;
}
if (strlen(opt_title) == 0) {
fatal(MYNAME "-title: Missing your title!\n");
}
- for (auto* track : qAsConst(track_list)) {
+ for (auto* track : std::as_const(track_list)) {
trackfilter_pack_init_rte_name(track, QDateTime::fromMSecsSinceEpoch(0, Qt::UTC));
}
}
int timeless_points = 0;
- for (auto* track : qAsConst(track_list)) {
+ for (auto* track : std::as_const(track_list)) {
foreach (Waypoint* wpt, track->waypoint_list) {
if (wpt->creation_time.isValid()) {
wpt->creation_time = wpt->creation_time.addMSecs(delta);
fix_type fix = trackfilter_parse_fix(&nsats);
- for (auto* track : qAsConst(track_list)) {
+ for (auto* track : std::as_const(track_list)) {
bool first = true;
foreach (Waypoint* wpt, track->waypoint_list) {
if (opt_fix) {
{
if (!track_list.isEmpty()) {
QList<route_head*> new_track_list;
- for (auto* src : qAsConst(track_list)) {
+ for (auto* src : std::as_const(track_list)) {
new_track_list.append(src);
route_head* dest = src;
route_head* insert_point = src;
assert(opt_faketime != nullptr);
faketime_t faketime = trackfilter_faketime_check(opt_faketime);
- for (auto* track : qAsConst(track_list)) {
+ for (auto* track : std::as_const(track_list)) {
foreach (Waypoint* wpt, track->waypoint_list) {
if (!wpt->creation_time.isValid() || faketime.force) {
#include <cmath> // for fabs, lround
#include <cstdio> // for NULL, sscanf
#include <ctime> // for tm
+#include <utility> // for as_const
#include <QByteArray> // for QByteArray
#include <QChar> // for QChar
}
long long res = 0;
- for (auto c : qAsConst(s)) {
+ for (auto c : std::as_const(s)) {
int val = kBase31.indexOf(c);
if (val < 0 || (base == 16 && val > 15)) {
return 0;
#include <cstdio> // for size_t, vsnprintf, FILE, fopen, printf, sprintf, stderr, stdin, stdout
#include <cstdlib> // for abs, calloc, free, malloc, realloc
#include <cstring> // for strlen, strcat, strstr, memcpy, strcmp, strcpy, strdup, strchr, strerror
+#include <utility> // for as_const
#include <QByteArray> // for QByteArray
#include <QChar> // for QChar, operator<=, operator>=
#include <Qt> // for CaseInsensitive
#include <QTime> // for QTime
#include <QTimeZone> // for QTimeZone
-#include <QtGlobal> // for qAsConst, qEnvironmentVariableIsSet, QAddConst<>::Type, qPrintable
+#include <QtGlobal> // for qEnvironmentVariableIsSet, QAddConst<>::Type, qPrintable
#include "defs.h"
#include "src/core/datetime.h" // for DateTime
};
std::sort(zoneids.begin(), zoneids.end(), alpha);
Warning() << "Available timezones are:";
- for (const auto& id : qAsConst(zoneids)) {
+ for (const auto& id : std::as_const(zoneids)) {
Warning() << id;
}
}
#include <QStringList> // for QStringList
#include <QVector> // for QVector
#include <Qt> // for CaseInsensitive
-#include <QtGlobal> // for qPrintable, qAsConst
+#include <QtGlobal> // for qPrintable
#include <algorithm> // for sort
#include <cassert> // for assert
#include <cstdio> // for printf, putchar, sscanf
-#include <type_traits> // for add_const<>::type, is_base_of
+#include <type_traits> // for is_base_of
+#include <utility> // for as_const
#include "defs.h" // for arglist_t, ff_vecs_t, ff_cap, fatal, CSTR, ARGTYPE_TYPEMASK, case_ignore_strcmp, global_options, global_opts, warning, xfree, ARGTYPE_BOOL, ff_cap_read, ff_cap_write, ARGTYPE_HIDDEN, ff_type_internal, xstrdup, ARGTYPE_INT, ARGTYPE_REQUIRED, ARGTYPE_FLOAT
#include "dg-100.h" // for Dg100FileFormat, Dg100SerialFormat, Dg200FileFormat, Dg200SerialFormat
* Didn't find it in the table of "real" file types, so plan B
* is to search the list of xcsv styles.
*/
- for (const auto& svec : qAsConst(style_list)) {
+ for (const auto& svec : std::as_const(style_list)) {
if (fmtname.compare(svec.name, Qt::CaseInsensitive) != 0) {
continue;
}
#include <cassert> // for assert
#include <cmath> // for fabs
#include <cstdio> // for fflush, fprintf, stdout
+#include <utility> // for as_const
#include <QChar> // for QChar
#include <QDateTime> // for QDateTime
WaypointList oldlist;
swap(oldlist);
- for (Waypoint* wpt : qAsConst(oldlist)) {
+ for (Waypoint* wpt : std::as_const(oldlist)) {
if (wpt->wpt_flags.marked_for_deletion) {
delete wpt;
} else {
#include <cstring> // for strlen, strncmp, strcmp
#include <ctime> // for gmtime, localtime, time_t, mktime, strftime
#include <optional> // for optional
+#include <utility> // for as_const
#include <QByteArray> // for QByteArray
#include <QChar> // for QChar
#include <QString> // for QString, operator+, operator==
#include <QStringList> // for QStringList
#include <QTextStream> // for QTextStream
-#include <QtGlobal> // for qAsConst, qRound, qPrintable
+#include <Qt> // for CaseInsensitive
+#include <QtGlobal> // for qRound, qPrintable
#include "defs.h"
#include "csv_util.h" // for csv_stringtrim, dec_to_human, csv_stringclean, human_to_dec, ddmmdir_to_degrees, dec_to_intdeg, decdir_to_dec, intdeg_to_dec, csv_linesplit
* pre-read the file to know how many data lines we should be seeing,
* we take this cheap shot at the data and cross our fingers.
*/
- for (const auto& ogp : qAsConst(xcsv_style->epilogue)) {
+ for (const auto& ogp : std::as_const(xcsv_style->epilogue)) {
if (ogp.startsWith(buff)) {
buff.clear();
break;
}
int i = 0;
- for (const auto& fmp : qAsConst(xcsv_style->ofields)) {
+ for (const auto& fmp : std::as_const(xcsv_style->ofields)) {
double lat = latitude;
double lon = longitude;
/*
waypt_out_count = 0;
/* output prologue lines, if any. */
- for (const auto& line : qAsConst(xcsv_style->prologue)) {
+ for (const auto& line : std::as_const(xcsv_style->prologue)) {
QString line_to_write = xcsv_replace_tokens(line);
xcsv_file->stream << line_to_write << xcsv_style->record_delimiter;
}
}
/* output epilogue lines, if any. */
- for (const auto& line : qAsConst(xcsv_style->epilogue)) {
+ for (const auto& line : std::as_const(xcsv_style->epilogue)) {
QString line_to_write = xcsv_replace_tokens(line);
xcsv_file->stream << line_to_write << xcsv_style->record_delimiter;
}